#pragma once

#define MAXSIZE 100
//顺序栈的定义
typedef struct
{
    //栈空间
    int* data;
    //栈顶指针
    int top;    
}SqStack;

//栈的初始化
//时间复杂度O(1)
bool InitSqStack(SqStack &S);

//判断栈是否为空
bool SqStackEmpty(SqStack S);

//读栈顶元素但是不出栈
int getTop(SqStack S);

//销毁栈并释放栈空间

bool DestorySqStack(SqStack &S);

//出栈
int Pop(SqStack &S);

//入栈
int Push(SqStack &S, int a);

//顺序输出栈内所有元素
void printStack(SqStack S);




//链栈定义
typedef struct 
{
    //栈顶指针
    int* top;  
    //栈长
    int len;    
}LiStack;


//链栈初始化

//判断栈是否为空

//链栈入栈

//链栈出栈

//链栈读栈顶元素

//销毁链栈